﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyNote.Data.Models
{
    public static class TagHelper
    {
        public static void AddTagFromNote(Note note, NoteModelContainer context)
        {
            if (note == null)
                throw new ArgumentNullException("note");
            if (context == null)
                throw new ArgumentNullException("context");

            var tagText = note.Tag;
            if (string.IsNullOrEmpty(tagText))
                return;

            var tagTexts = tagText.Split(',', ';', '，', '；');
            Tag tag = null;

            // 首先清空
            note.Tags.Clear();

            foreach (var t in tagTexts)
            {
                if (!context.TagSet.Any(ts => ts.Title == t))
                {
                    tag = new Tag()
                    {
                        Title = t
                    };
                    note.Tags.Add(tag);
                }
                else
                {
                    tag = context.TagSet.First(ts => ts.Title == t);
                }

                tag.Notes.Add(note);
            }
        }
    }
}
